/**
 * 用户相关API设置
 */
import { spring } from "@/config";
import { mock } from "@/config";
const BASEURL:string = '/user'
const BASEURL_CARD:string = '/userCard'
const BASEURL_MANGER:string = '/manage'
export function getUserInfo(param:{account:string}) {
     return mock({
        url:BASEURL+'/info',
        method: 'POST',
        data: param
    })
}
/**
 * 这是一个处理用户登录请求的函数。通过POST方法发送一个包含用户名和密码的请求到服务器，并返回服务器的响应。
 *
 * @param {Object} param - 一个对象，包含用户的用户名和密码。用户名和密码都是字符串类型。
 * @return {Promise} 返回一个Promise对象，表示服务器的响应。如果请求成功，Promise的状态将变为fulfilled，并且其值将是服务器的响应。如果请求失败，Promise的状态将变为rejected，并且其值将是错误对象。
 */
export function postUserLogin(param:{
    userPassword: string;
    userName: string;
}) {
    return spring({
        url:BASEURL+'/login',
        method:'POST',
        data: param
    })
}
/**
 * 这是一个用户注册的函数，通过POST方法将用户信息发送到服务器进行注册。
 *
 * @param {Object} param - 用户的信息，包括用户名、密码、电话号码和电子邮件。其中电话号码和电子邮件是可选参数。
 * @param {string} param.userPassword - 用户的密码。
 * @param {string} param.userName - 用户的用户名。
 * @param {(string | number | null)} [param.userPhone=null] - 用户的电话号码，可以是字符串、数字或null。
 * @param {(string | null)} [param.userEmail=null] - 用户的电子邮件，可以是字符串或null。
 * @return {Promise} 返回一个Promise对象，如果注册成功，Promise的状态变为resolved；如果注册失败，Promise的状态变为rejected。
 */
export function postUserRegister(param:{
    userPassword: string;
    userName: string;
    userPhone?: string |number | null;
    userEmail?:string | null;
}){
    return spring({
        url:BASEURL+'/register',
        method: "POST",
        data: param
    })
}

/**
 * 这是一个异步函数，用于处理用户忘记密码的重置请求。该函数会向服务器发送一个POST请求，并打印出响应结果。
 *
 * @return {Boolean} 返回一个布尔值，表示操作是否成功。如果请求成功并且服务器正确响应，则返回true。
 */
export async function postUserForgetReset(){
    const res = await spring({
        url: '',
        method: 'POST'
    })
    console.log(res)
    return true
}
export function postUserOutLogin(){
    return spring({
        url:BASEURL+'/outLogin',
        method:"POST",
    })
}
export function postUserCloseUser(){
    return spring({
        url:BASEURL+'/closeUser',
        method:"POST"
    })
}
// 用户卡片模块
export function postUserCardGetUserCard(){
    return spring({
        url:BASEURL_CARD+'/getUserCard',
        method:"POST"
    })
}
export function postUserCardUpdateUserCard(){
    return spring({
        url: BASEURL_CARD + '/updateUserCard',
        method: "POST"
    })
}
// 管理员
// 根据名称获取管理员信息
export function postMangeGetUserByUsername(param:{
    userName: string;
}){
    return spring({
        url: BASEURL_MANGER+'/getManagerByUsername',
        method: "POST",
        data: param
    })
}
//根据用户id获取用户信息
export function postMangeGetUserByUserId(param:{
    id: number;
}){
    return spring({
        url: BASEURL_MANGER+'/getManagerByUserId',
        method: "POST",
        data: param
    })
}
// 获取用户学习时间和等级
export function postMangeGetLearningTime(){
    return spring({
        url: BASEURL_CARD+'/getLearningTime',
        method: "POST"
    })
}

